import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  // data
  state: {
    count: 0,
    a: 1,
    b: 2,
    c: 3,
  },
  // methods
  mutations: {
    add1(state, payload) {
      // state.count++
      state.count += payload
    }
  },
  // computed
  getters: {
    // res(state) {
    //   return state.count * state.b
    // }
    res({ count, b }) {
      return count * b
    }
  },
  // 异步
  actions: {
    // add2(store) {
    //   setTimeout(() => {
    //     store.commit('add1', 100)
    //   }, 1000)
    // }
    add2({ commit }) {
      setTimeout(() => {
        commit('add1', 100)
      }, 1000)
    }
  },
  modules: {

  }
})

// function mapState(arr){
//   state[arr[0]]

//   return {
//     a(){
//       return 'a'
//     },
//     b(){
//       return 'b'
//     }
//   }
// }
